From 1f9aab01249772158fa244b4f154ee12adb69748 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Sat, 11 Jun 2011 13:29:05 +0300 Subject: [PATCH] Only commentary changes, no functionality changed. src/xdisp.c (next_element_from_buffer): Improve commentary for when the iterator is before prev_stop. --- src/ChangeLog | 5 +++++ src/xdisp.c | 11 +++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 3be94ba0631..592ee8f8969 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2011-06-11 Eli Zaretskii + + * xdisp.c (next_element_from_buffer): Improve commentary for when + the iterator is before prev_stop. + 2011-06-10 Eli Zaretskii * xdisp.c (Fcurrent_bidi_paragraph_direction): Initialize diff --git a/src/xdisp.c b/src/xdisp.c index 8486808bb40..8be85d16fb4 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -6822,13 +6822,20 @@ next_element_from_buffer (struct it *it) } } else if (it->bidi_p + /* If we are before prev_stop, we may have overstepped on + our way backwards a stop_pos, and if so, we need to + handle that stop_pos. */ + && IT_CHARPOS (*it) < it->prev_stop /* We can sometimes back up for reasons that have nothing to do with bidi reordering. E.g., compositions. The code below is only needed when we are above the base embedding level, so test for that explicitly. */ - && !BIDI_AT_BASE_LEVEL (it->bidi_it) - && IT_CHARPOS (*it) < it->prev_stop) + && !BIDI_AT_BASE_LEVEL (it->bidi_it)) { + /* If we lost track of base_level_stop, we have no better place + for handle_stop_backwards to start from than BEGV. This + happens, e.g., when we were reseated to the previous + screenful of text by vertical-motion. */ if (it->base_level_stop <= 0 || IT_CHARPOS (*it) < it->base_level_stop) it->base_level_stop = BEGV; -- 2.30.2